/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.ove.openmath.jome.model.events;

/**
 *
 * @author Mr.Sam
 */
import java.util.EventListener;
import fr.ove.openmath.jome.model.events.ModelEvent;
import fr.ove.openmath.jome.ctrlview.events.*;

/**
* The interface that an object which want to be alerted of the changes of the model
* and want to control at the same time, must implement.
*
* @author © 1998 DIRAT Laurent
* @version 1.0  29/07/98
*/
public interface ModelListenerController extends ModelListener {
    /**
    * Registers another listener to be informed of some changes.
    * @param controlListener a listener to add.
    */
    public void addControlListener(ControlListener controlListener);
    
    /**
    * Removes a listener.
    * @param controlListener a listener to remove.
    */
    public void removeControlListener(ControlListener controlListener);
    
    /**
    * Fires a Control event to registered listeners.
    * @param controlEvent event encapsulating relevant information.
    */
    public void fireControlEvent(ControlEvent controlEvent);
}

